 /*******************************************************************************
  * Copyright (c) 2000, 2007 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
  * IBM Corporation - initial API and implementation
  * Kiryl Kazakevich, Intel - bug 88359
  *******************************************************************************/
 package org.eclipse.ui;


 /**
  * Preference ids exposed by the Eclipse Platform User Interface.
  * These preference settings can be obtained from the UI plug-in's
  * preference store.
  *
  * @see PlatformUI#PLUGIN_ID
  * @see PlatformUI#getPreferenceStore()
  */
 public interface IWorkbenchPreferenceConstants {
     
     /**
      * A named preference for whether to show an editor when its
      * input file is selected in the Navigator (and vice versa).
      * <p>
      * Value is of type <code>boolean</code>.
      * </p>
      */
     public static final String LINK_NAVIGATOR_TO_EDITOR = "LINK_NAVIGATOR_TO_EDITOR"; //$NON-NLS-1$

     /**
      * A named preference for how a new perspective is opened.
      * <p>
      * Value is of type <code>String</code>. The possible values are defined
      * by <code>OPEN_PERSPECTIVE_WINDOW, OPEN_PERSPECTIVE_PAGE and
      * OPEN_PERSPECTIVE_REPLACE</code>.
      * </p>
      *
      * @see #OPEN_PERSPECTIVE_WINDOW
      * @see #OPEN_PERSPECTIVE_PAGE
      * @see #OPEN_PERSPECTIVE_REPLACE
      * @see #NO_NEW_PERSPECTIVE
      */
     public static final String OPEN_NEW_PERSPECTIVE = "OPEN_NEW_PERSPECTIVE"; //$NON-NLS-1$

     /**
      * A named preference for how a new perspective is opened
      * when the alternate key modifiers are pressed. The alternate key modifiers
      * are platform dependent.
      * <p>
      * Value is of type <code>String</code>. The possible values are defined
      * by <code>OPEN_PERSPECTIVE_WINDOW, OPEN_PERSPECTIVE_PAGE and
      * OPEN_PERSPECTIVE_REPLACE</code>.
      * </p>
      * @deprecated Workbench no longer supports alternate key modifier to open
      * a new perspective. Callers should use IWorkbench.showPerspective methods.
      */
     public static final String ALTERNATE_OPEN_NEW_PERSPECTIVE = "ALTERNATE_OPEN_NEW_PERSPECTIVE"; //$NON-NLS-1$

     /**
      * A named preference for how a new perspective is opened
      * when the shift key modifier is pressed.
      * <p>
      * Value is of type <code>String</code>. The possible values are defined
      * by <code>OPEN_PERSPECTIVE_WINDOW, OPEN_PERSPECTIVE_PAGE and
      * OPEN_PERSPECTIVE_REPLACE</code>.
      * </p>
      *
      * @deprecated Workbench no longer supports shift key modifier to open
      * a new perspective. Callers should use IWorkbench.showPerspective methods.
      */
     public static final String SHIFT_OPEN_NEW_PERSPECTIVE = "SHIFT_OPEN_NEW_PERSPECTIVE"; //$NON-NLS-1$

     /**
      * A named preference for how a new perspective should be opened
      * when a new project is created.
      * <p>
      * Value is of type <code>String</code>. The possible values are defined
      * by the constants <code>OPEN_PERSPECTIVE_WINDOW, OPEN_PERSPECTIVE_PAGE,
      * OPEN_PERSPECTIVE_REPLACE, and NO_NEW_PERSPECTIVE</code>.
      * </p>
      *
      * @see #OPEN_PERSPECTIVE_WINDOW
      * @see #OPEN_PERSPECTIVE_PAGE
      * @see #OPEN_PERSPECTIVE_REPLACE
      * @see #NO_NEW_PERSPECTIVE
      * @deprecated in 3.0. This preference is IDE-specific, and is therefore found
      * only in IDE configurations. IDE-specific tools should use
      * <code>org.eclipse.ui.ide.IDE.Preferences.PROJECT_OPEN_NEW_PERSPECTIVE</code>
      * instead.
      */
     public static final String PROJECT_OPEN_NEW_PERSPECTIVE = "PROJECT_OPEN_NEW_PERSPECTIVE"; //$NON-NLS-1$

     /**
      * A preference value indicating that an action should open a new
      * perspective in a new window.
      *
      * @see #PROJECT_OPEN_NEW_PERSPECTIVE
      */
     public static final String OPEN_PERSPECTIVE_WINDOW = "OPEN_PERSPECTIVE_WINDOW"; //$NON-NLS-1$

     /**
      * A preference value indicating that an action should open a new
      * perspective in a new page.
      *
      * @see #PROJECT_OPEN_NEW_PERSPECTIVE
      * @deprecated Opening a Perspective in a new page is no longer
      * supported functionality as of 2.0.
      */
     public static final String OPEN_PERSPECTIVE_PAGE = "OPEN_PERSPECTIVE_PAGE"; //$NON-NLS-1$

     /**
      * A preference value indicating that an action should open a new
      * perspective by replacing the current perspective.
      *
      * @see #PROJECT_OPEN_NEW_PERSPECTIVE
      */
     public static final String OPEN_PERSPECTIVE_REPLACE = "OPEN_PERSPECTIVE_REPLACE"; //$NON-NLS-1$

     /**
      * A preference value indicating that an action should not open a
      * new perspective.
      *
      * @see #PROJECT_OPEN_NEW_PERSPECTIVE
      */
     public static final String NO_NEW_PERSPECTIVE = "NO_NEW_PERSPECTIVE"; //$NON-NLS-1$

     /**
      * A named preference indicating the default workbench perspective.
      */
     public static final String DEFAULT_PERSPECTIVE_ID = "defaultPerspectiveId"; //$NON-NLS-1$

     /**
      * A named preference indicating the presentation factory
      * to use for the workbench look and feel.
      *
      * @since 3.0
      */
     public static final String PRESENTATION_FACTORY_ID = "presentationFactoryId"; //$NON-NLS-1$

     /**
      * A named preference indicating where the perspective bar should be docked.
      * The default value (when this preference is not set) is <code>TOP_RIGHT</code>.
      * <p>
      * This preference may be one of the following values:
      * {@link #TOP_RIGHT}, {@link #TOP_LEFT}, or {@link #LEFT}.
      * </p>
      *
      * @since 3.0
      */
     public static String DOCK_PERSPECTIVE_BAR = "DOCK_PERSPECTIVE_BAR"; //$NON-NLS-1$

     /**
      * A named preference indicating where the fast view bar should be docked in a
      * fresh workspace. This preference is meaningless after a workspace has been
      * setup, since the fast view bar state is then persisted in the workbench. This
      * preference is intended for applications that want the initial docking location
      * to be somewhere specific. The default value (when this preference is not set)
      * is the bottom.
      *
      * @see #LEFT
      * @see #BOTTOM
      * @see #RIGHT
      * @since 3.0
      */
     public static final String INITIAL_FAST_VIEW_BAR_LOCATION = "initialFastViewBarLocation"; //$NON-NLS-1$

     /**
      * Constant to be used when referring to the top right of the workbench window.
      *
      * @see #DOCK_PERSPECTIVE_BAR
      * @since 3.0
      */
     public static final String TOP_RIGHT = "topRight"; //$NON-NLS-1$

     /**
      * Constant to be used when referring to the top left of the workbench window.
      *
      * @see #DOCK_PERSPECTIVE_BAR
      * @since 3.0
      */
     public static final String TOP_LEFT = "topLeft"; //$NON-NLS-1$

     /**
      * Constant to be used when referring to the left side of the workbench window.
      *
      * @see #DOCK_PERSPECTIVE_BAR
      * @see #INITIAL_FAST_VIEW_BAR_LOCATION
      * @since 3.0
      */
     public static final String LEFT = "left"; //$NON-NLS-1$

     /**
      * Constant to be used when referring to the bottom of the workbench window.
      *
      * @see #INITIAL_FAST_VIEW_BAR_LOCATION
      * @since 3.0
      */
     public static final String BOTTOM = "bottom"; //$NON-NLS-1$

     /**
      * Constant to be used when referring to the right side of the workbench window.
      *
      * @see #INITIAL_FAST_VIEW_BAR_LOCATION
      * @since 3.0
      */
     public static final String RIGHT = "right"; //$NON-NLS-1$

     /**
      * A named preference indicating whether the workbench should show the
      * introduction component (if available) on startup.
      *
      * <p>
      * The default value for this preference is: <code>true</code> (show intro)
      * </p>
      *
      * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#openIntro()
      * @since 3.0
      */
     public static final String SHOW_INTRO = "showIntro"; //$NON-NLS-1$

     /**
      * A named preference for whether the workbench should show traditional style tabs in
      * editors and views.
      *
      * Boolean-valued: <code>true</code> if editors and views should use a traditional style of tab and
      * <code>false</code> if editors should show new style tab (3.0 style)
      * <p>
      * The default value for this preference is: <code>true</code>
      * </p>
      *
      * @since 3.0
      */
     public static String SHOW_TRADITIONAL_STYLE_TABS = "SHOW_TRADITIONAL_STYLE_TABS"; //$NON-NLS-1$

     /**
      * A named preference for whether the workbench should show text
      * on the perspective bar.
      *
      * Boolean-valued: <code>true</code>, if editors should show text on the perspective bar,
      * <code>false</code> otherwise.
      * <p>
      * The default value for this preference is: <code>true</code> (show text on the perspective bar)
      * </p>
      *
      * @since 3.0
      */
     public static String SHOW_TEXT_ON_PERSPECTIVE_BAR = "SHOW_TEXT_ON_PERSPECTIVE_BAR"; //$NON-NLS-1$

     /**
      * A named preference for the text of the Help Contents action.
      *
      * String-valued. If not specified, <code>"&Help Contents"</code> is used.
      * <p>
      * The default value for this preference is: <code>null</code>
      * </p>
      *
      * @since 3.0
      */
     public static String HELP_CONTENTS_ACTION_TEXT = "helpContentsActionText"; //$NON-NLS-1$

     /**
      * A named preference for the text of the Help Search action.
      *
      * String-valued. If not specified, <code>"S&earch"</code> is used.
      * <p>
      * The default value for this preference is: <code>null</code>
      * </p>
      *
      * @since 3.1
      */
     public static String HELP_SEARCH_ACTION_TEXT = "helpSearchActionText"; //$NON-NLS-1$

     /**
      * A named preference for the text of the Dynamic Help action.
      *
      * String-valued. If not specified, <code>"&Dynamic Help"</code> is used.
      * <p>
      * The default value for this preference is: <code>null</code>
      * </p>
      *
      * @since 3.1
      */
     public static String DYNAMIC_HELP_ACTION_TEXT = "dynamicHelpActionText"; //$NON-NLS-1$

     /**
      * A named preference for enabling animations when a layout transition occurs
      * <p>
      * The default value for this preference is: <code>true</code> (show animations when a transition occurs)
      * </p>
      *
      * @since 3.1
      */
     public static final String ENABLE_ANIMATIONS = "ENABLE_ANIMATIONS"; //$NON-NLS-1$

     /**
      * <p>
      * Workbench preference id for the key configuration identifier to be
      * treated as the default.
      * </p>
      * <p>
      * The default value for this preference is
      * <code>"org.eclipse.ui.defaultAcceleratorConfiguration"</code>.
      * <p>
      *
      * @since 3.1
      */
     public static final String KEY_CONFIGURATION_ID = "KEY_CONFIGURATION_ID"; //$NON-NLS-1$

     /**
      * <p>
      * Workbench preference identifier for the minimum width of editor tabs. By
      * default, Eclipse does not define this value and allows SWT to determine
      * this constant. We use <code>-1</code> internally to signify "use
      * default".
      * </p>
      * <p>
      * The default value for this preference is <code>-1</code>.
      * </p>
      *
      * @since 3.1
      */
     public static final String EDITOR_MINIMUM_CHARACTERS = "EDITOR_MINIMUM_CHARACTERS"; //$NON-NLS-1$

     /**
      * <p>
      * Workbench preference identifier for the minimum width of view tabs.
      * </p>
      * <p>
      * The default value for this preference is <code>1</code>.
      * </p>
      *
      * @since 3.2
      */
     public static final String VIEW_MINIMUM_CHARACTERS = "VIEW_MINIMUM_CHARACTERS"; //$NON-NLS-1$

     /**
      * Stores whether or not system jobs are being shown.
      *
      * @since 3.1
      */
     public static final String SHOW_SYSTEM_JOBS = "SHOW_SYSTEM_JOBS";//$NON-NLS-1$

     /**
      * Workbench preference for the current theme.
      *
      * @since 3.1
      */
     public static String CURRENT_THEME_ID = "CURRENT_THEME_ID"; //$NON-NLS-1$

     /**
      * A preference value indicating whether editors should be closed before saving
      * the workbench state when exiting. The default is <code>false</code>.
      *
      * @since 3.1
      */
     public static final String CLOSE_EDITORS_ON_EXIT = "CLOSE_EDITORS_ON_EXIT"; //$NON-NLS-1$

     /**
      * Stores whether or not to show progress while starting the workbench.
      * The default is <code>false</code>.
      *
      * @since 3.1
      */
     public static final String SHOW_PROGRESS_ON_STARTUP = "SHOW_PROGRESS_ON_STARTUP"; //$NON-NLS-1$

     /**
      * Stores whether or not to show the memory monitor in the workbench window.
      *
      * @since 3.1
      */
     public static final String SHOW_MEMORY_MONITOR = "SHOW_MEMORY_MONITOR"; //$NON-NLS-1$

     /**
      * Stores whether or not to use the window working set as the default
      * working set for newly created views (without previously stored state).
      * This is a hint that view implementors should honor.
      *
      * @since 3.2
      */
     public static final String USE_WINDOW_WORKING_SET_BY_DEFAULT = "USE_WINDOW_WORKING_SET_BY_DEFAULT"; //$NON-NLS-1$

     /**
      * Stores whether or not to show the text widget that allows type-ahead search
      * in the case where a FilteredTree is used to display and filter tree items.
      *
      * @since 3.2
      */
     public static final String SHOW_FILTERED_TEXTS = "SHOW_FILTERED_TEXTS"; //$NON-NLS-1$

     /**
      * Stores whether or not views may be detached. The default is <code>true</code>.
      *
      * @since 3.2
      */
     public static final String ENABLE_DETACHED_VIEWS = "ENABLE_DETACHED_VIEWS"; //$NON-NLS-1$

     /**
      * Stores whether or not the workbench prompts for saving when a dirty
      * editor or view is closed, but the Saveable objects are still open in
      * other parts. If
      * <code>true<code> (default), the user will be prompted. If <code>false</code>, there will be
      * no prompt.
      *
      * @see Saveable
      * @since 3.2
      */
     public static final String PROMPT_WHEN_SAVEABLE_STILL_OPEN = "PROMPT_WHEN_SAVEABLE_STILL_OPEN"; //$NON-NLS-1$

     /**
      * Lists the extra perspectives to show in the perspective bar.
      * The value is a comma-separated list of perspective ids.
      * The default is the empty string.
      *
      * @since 3.2
      */
     public static final String PERSPECTIVE_BAR_EXTRAS = "PERSPECTIVE_BAR_EXTRAS"; //$NON-NLS-1$

     /**
      * Allows locking the trim to prevent user dragging on startup.
      * The default is <code>false</code>.
      *
      * @since 3.2
      */
     public static final String LOCK_TRIM = "LOCK_TRIM"; //$NON-NLS-1$

     /**
      * A named preference for providing the 3.3 presentation's min/max behaviour
      * <p>
      * The default value for this preference is: <code>false</code>; use the 3.2
      * behaviour.
      * </p>
      *
      * @since 3.3
      */
     public static final String ENABLE_NEW_MIN_MAX = "ENABLE_MIN_MAX"; //$NON-NLS-1$

     /**
      * A named preference for disabling opening a new fast view
      * from the fast view bar controls ("Show View as a fast view" button
      * or "New Fast View" submenu).
      * <p>
      * Value is of type <code>boolean</code>.
      * </p><p>
      * The default is <code>false</code>.
      * </p>
      *
      * @since 3.3
      */
     public static final String DISABLE_NEW_FAST_VIEW = "disableNewFastView"; //$NON-NLS-1$

     /**
      * A named preference for enabling the 3.2 behavior for closing sticky views.
      * When not enabled a sticky view is closed in all perspectives when the view is closed.
      * <p>
      * The default value for this preference is: <code>false</code>; use the 3.2
      * behaviour.
      * </p>
      *
      * @since 3.3
      */
     public static final String ENABLE_32_STICKY_CLOSE_BEHAVIOR = "ENABLE_32_STICKY_CLOSE_BEHAVIOR"; //$NON-NLS-1$
 }

